home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / dm3_src.zip / RANDOM.ASM < prev   
Assembly Source File  |  1988-04-29  |  3KB  |  94 lines

  1.  
  2. ;* ************************************************************************* *;
  3. ;*                                                                           *;
  4. ;*                        Clock Based Random Numbers                         *;
  5. ;*                                                                           *;
  6. ;* ************************************************************************* *;
  7.  
  8.  
  9.  
  10.  
  11. ;* ************************************************************************* *;
  12. ;*                               Update History                              *;
  13. ;* ************************************************************************* *;
  14. ;*     Date        Author                      Description                   *;
  15. ;*  ----------   ----------   ---------------------------------------------  *;
  16. ;*   06/02/86    M. Bayley    New functions                                  *;
  17. ;*                                                                           *;
  18. ;*                                                                           *;
  19. ;*                                                                           *;
  20. ;* ************************************************************************* *;
  21.  
  22.  
  23. TITLE   RND_CLOCK - Clock based random number generator
  24.  
  25. ;
  26. ;
  27. ;************************
  28. ;    HARDWARE EQUATES
  29. ;************************
  30. ;
  31. TIMER_PORT      EQU     40H                     ; TIMER 0 DATA
  32. TIMER_CONTROL   EQU     43H                     ; CONTROL PORT
  33. ;
  34. TMR_BINARY      EQU     00000000B               ; BINARY COUNTING
  35. TMR_BCD         EQU     00000001B               ; BCD COUNTING
  36. TMR_MODE0       EQU     00000000B               ; MODE 0
  37. TMR_MODE1       EQU     00000010B               ; MODE 1
  38. TMR_MODE2       EQU     00000100B               ; MODE 2
  39. TMR_MODE3       EQU     00000110B               ; MODE 3
  40. TMR_MODE4       EQU     00001000B               ; MODE 4
  41. TMR_MODE5       EQU     00001010B               ; MODE 5
  42. TMR_LATCH       EQU     00000000B               ; LATCH COMMAND
  43. TMR_LOADL       EQU     00010000B               ; LOAD LOW
  44. TMR_LOADH       EQU     00100000B               ; LOAD HIGH
  45. TMR_LOADLH      EQU     00110000B               ; LOAD LOW THEN HIGH
  46. TMR_COUNTER0    EQU     00000000B               ; COUNTER NUMBER 1
  47. TMR_COUNTER1    EQU     01000000B               ; COUNTER NUMBER 2
  48. TMR_COUNTER2    EQU     10000000B               ; COUNTER NUMBER 3
  49. ;
  50. TMR_DATAN       EQU     TMR_BINARY+TMR_MODE3+TMR_LOADLH+TMR_COUNTER0
  51. TMR_DATAC       EQU     TMR_BINARY+TMR_MODE2+TMR_LOADLH+TMR_COUNTER0
  52. TMR_READ        EQU     TMR_BINARY+TMR_MODE2+TMR_LATCH+TMR_COUNTER0
  53. ;
  54. ;
  55.  
  56. ;
  57. ;
  58. ; Segment Definitions
  59. ;
  60.  
  61. TRANxx_TEXT     SEGMENT  BYTE PUBLIC 'CODE'
  62. ASSUME  CS:     TRANxx_TEXT
  63.  
  64. ;
  65. ;
  66. ;************************
  67. ;      _RND_CLOCK
  68. ;************************
  69. ; PROCEDURE:    1. READ CLOCK VALUE
  70. ;               2. EXIT
  71. ; ENTRY:        NONE
  72. ; RETURN:       AX CONTAINS RANDOME NUMBER
  73. ;
  74. PUBLIC          _rnd_clock
  75. _rnd_clock      PROC    FAR
  76. ;
  77.                 CLI                             ; DON'T BUG ME
  78.                 MOV     AL,TMR_READ             ; SET FOR READ
  79.                 OUT     TIMER_CONTROL,AL
  80.                 IN      AL,TIMER_PORT           ; READ LOW BYTE
  81.                 MOV     AH,AL
  82.                 IN      AL,TIMER_PORT           ; READ HIGH BYTE
  83.                 STI
  84.                 RET
  85. ;
  86. _rnd_clock      ENDP
  87.  
  88. ;
  89. ;
  90. TRANxx_TEXT     ENDS
  91.  
  92. ;
  93. END
  94.